package com.bz.xtcx.manager.mapper.provider;

import org.springframework.util.StringUtils;

import com.bz.xtcx.manager.persist.conditions.CategoryCondition;
import com.bz.xtcx.manager.vo.VoQueryCms;

public class CmsCategoryProvider {
    public String selectByParentCodeProvider(CategoryCondition cc) {
        StringBuilder sql = new StringBuilder("select DISTINCT ");
        sql.append("a.id id, ");
        sql.append("a.name name, ");
        sql.append("a.code code, ");
        sql.append("a.parent_id parent_id, ");
        sql.append("a.type_id type_id, ");
        sql.append("a.icon icon, ");
        sql.append("a.only_url only_url, ");
        sql.append("a.content_url content_url, ");
        sql.append("a.sort sort, ");
        sql.append("a.readable readable, ");
        if (cc.isLoadAll()) {
            sql.append("a.creater creater, ");
            sql.append("a.create_time create_time, ");
            sql.append("a.updater updater, ");
            sql.append("a.update_time update_time, ");
            sql.append("a.tags tags, ");
        }
        sql.append("a.memo memo ");
        sql.append("from cms_category a, cms_category b ");
        sql.append("where a.parent_id = b.id ");
        sql.append("and b.code = '" + cc.getCode() + "' ");
        if (cc.getNeedPaging()) {
            sql.append("limit " + cc.getPageBegin() + ", " + cc.getPageSize());
        }
        return sql.toString();
    }
    
    public String findByCondition(VoQueryCms query) {
    	StringBuilder sql = new StringBuilder("select * from `cms_category` where 1=1");
    	if(query != null) {
    		if(!StringUtils.isEmpty(query.getReadable())) {
    			sql.append(" and readable=").append(query.getReadable());
    		}
    		if(!StringUtils.isEmpty(query.getType())) {
    			sql.append(" and type_id=").append(query.getType());
    		}
    		if(!StringUtils.isEmpty(query.getObjName())) {
    			sql.append(" and (");
				sql.append(" name like '%").append(query.getObjName()).append("%'");
				sql.append(" or code like '%").append(query.getObjName()).append("%'");
				sql.append(" or tags like '%").append(query.getObjName()).append("%'");
				sql.append(")");
    		}
    	}
    	return sql.toString();
    }
}
